iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0
Modern Web

ASP.NET Core 入門實戰30天系列 第 10

Day 10 ASP .NET Core MVC Life cycle

  • 分享至 

  • xImage
  •  

本篇重點

ASP .NET Core MVC 生命週期


前言

接下來會針對MVC的部份去做整理
簡單討論一下 ASP .NET Core 下的MVC request 的cycle


ASP .NET Core MVC 生命週期

和前面提到的一樣
Middleware在ASP .NET Core占了非常重要部分
當一個http request 進來時
會先經過Middleware,再去針對設定的Routing去找對應的controller action
最後透過action裡面了邏輯再回傳到View


(圖片來源:https://dotnettutorials.net/)

  • Middleware
    這裡包含我們在statup.cs裡面已經註冊好的那些Middleware,依序執行對應的功能
  • Routing
    根據在設定好的router,也就是app.UseEndpoint裡面註冊的東西,去mapping找到對應的controller 下的action
  • Controller Initialization
    處理controller 初始化的步驟
  • Action method
    執行我們在action裡面的邏輯行為並回傳出去
  • Result
    也就是View,將回傳的結果顯示在前端頁面上

AddControllersWithViews

在MVC專案裡面
這個方法就又被註冊在startup.cs裡面了
這個方法主要是給MVC所使用
提供了MVC以及web api 的方法

public void ConfigureServices(IServiceCollection services)
{
   services.AddControllersWithViews();
}

打開Razor pages專案可以看到這裡註冊的又是另一個方法
這個主要是提供給Razor使用的

services.AddRazorPages();

另外還有一個方法是 services.AddMvc();
這個是包含所有會需要用到的方法

簡單來說

AddMvc() //  MVC/WEB API/Razor 
AddRazorPages() // Razor
AddControllersWithViews() // MVC
AddController() // WEB API

Filter

在ASP .NET MVC 有用到Filters
在ASP .NET Core也可以使用
後面會再來整理這些 action filters的使用方式

這裡主要先知道有關Filter的部分會發生在上面提到Action method
其中包含了Authorization以及action filter還有Model Binding


參考資料:

https://www.c-sharpcorner.com/article/asp-net-core-mvc-request-life-cycle/

https://dotnettutorials.net/lesson/difference-between-addmvc-and-addmvccore-method/

https://dotnettutorials.net/lesson/asp-net-mvc-life-cycle/


上一篇
Day 9 Routing
下一篇
Day 11 使用Scaffold 在VS2019 for Mac 建立CRUD
系列文
ASP.NET Core 入門實戰30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言